package com.cyt.wx.service;

import com.cyt.base.model.dto.ReturnResult;
import com.cyt.sys.model.po.SysUser;
import com.cyt.sys.service.BaseService;
import com.cyt.wx.model.po.WxMember;
import com.cyt.wx.model.vo.WxMemberVo;

import java.util.List;

/**
 * 微信端-会员管理Service层接口类
 *
 * @author caideyong
 * @date 2019-7-9 8:37:55
 */
public interface WxMemberService extends BaseService<WxMember> {

    /**
     * 查询对象集合
     *
     * @param wxMemberVo 对象
     * @return List 对象集合
     * @author caideyong
     * @date 2019-7-9 8:37:55
     */
    List<WxMember> listExample(WxMemberVo wxMemberVo);
    /**
     * 通过token获取会员信息
     *
     * @return List 对象集合
     * @author caideyong
     * @date 2019-7-9 8:37:55
     */
    WxMember selectMemberByToken(String token);

    /**
     * 通过openId获取会员信息
     *
     * @return List 对象集合
     * @author caideyong
     * @date 2019-7-9 8:37:55
     */
    WxMember selectMemberByOpenId(String openid);
    /**
     * 分页查询
     *
     * @param wxMemberVo 接受参数对象
     * @param pageNum          分页数
     * @param pageSize         每页显示条数
     * @return ReturnResult
     * @author caideyong
     * @date 2019-7-9 8:37:55
     */
    ReturnResult page(WxMemberVo wxMemberVo, int pageNum, int pageSize);

    /**
     * 分页查询(用户)
     *
     * @param wxMemberVo 接受参数对象
     * @param pageNum          分页数
     * @param pageSize         每页显示条数
     * @return ReturnResult
     * @author caideyong
     * @date 2019-7-9 8:37:55
     */
    ReturnResult pageUser(WxMemberVo wxMemberVo, int pageNum, int pageSize, SysUser sysUser);

    /**
     * 添加或更新
     *
     * @param wxMemberVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author caideyong
     * @date 2019-7-9 8:37:55
     */
    ReturnResult addOrUpdate(WxMemberVo wxMemberVo, SysUser sysUser);

    /**
     * 根据条件逻辑删除
     *
     * @param wxMemberVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author caideyong
     * @date 2019-7-9 8:37:55
     */
    ReturnResult remove(WxMemberVo wxMemberVo, SysUser sysUser);

    /**
     * 根据条件物理删除
     *
     * @param wxMemberVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author caideyong
     * @date 2019-7-9 8:37:55
     */
    ReturnResult delete(WxMemberVo wxMemberVo, SysUser sysUser);
}